package org.dxy.domain.event.product;

import org.dxy.domain.event.AggregateTypeEnum;
import org.dxy.domain.event.DomainEvent;
import org.dxy.domain.model.valobj.Bom;

import java.time.LocalDateTime;

/**
 * @description: 产品已创建事件
 * @author: dxy
 * @createTime: 2025/8/17
 */
public record ProductCreatedEvent(

    /**
     * 产品ID
     */
    Long productId,
    
    /**
     * 产品编码
     */
    String productCode,

    /**
     * 产品类型
     */
    String type,
    
    /**
     * 产品版本
     */
    String version,
    
    /**
     * 计量单位
     */
    String unit,
    
    /**
     * BOM清单
     */
    Bom bom

) implements DomainEvent {

    
    @Override
    public Long aggregateId() {
        return productId;
    }
    
    @Override
    public String aggregateType() {
        return AggregateTypeEnum.PRODUCT.getKey();
    }
    
    @Override
    public String eventType() {
        return ProductEventTypeEnum.CREATED.getKey();
    }
}